﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;

namespace DiaryPlanner
{
    public partial class NewID : Form
    {
        string id, pass, pw1, pw2, qw, ans;
        public NewID()
        {
            
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e) //등록 버튼
        {
            int num=0;
            id = this.textBoxID.Text.ToString();
            pw1 = this.textBoxPW.Text.ToString();
            pw2 = this.textBoxPW1.Text.ToString();
            qw = this.textBoxQW.Text.ToString();
            ans = this.textBoxAN.Text.ToString();
            if (id.Length < 4)
            {
                MessageBox.Show("아이디는 4글자 이상");
                textBoxID.Text = "";
                textBoxPW.Text = "";
                textBoxPW1.Text = "";
                return;
            }
            if (pw1.Equals(pw2))
            {
                pass = pw1;
            }
            else
            {
                MessageBox.Show("비밀번호가 서로 다릅니다");
                textBoxPW.Text = "";
                textBoxPW1.Text = "";
                return;
            }
            if (qw == "")
            {
                MessageBox.Show("질문 입력하세요");
                textBoxPW.Text = "";
                textBoxPW1.Text = "";
                return;
            }
            if (ans == "")
            {
                MessageBox.Show("답변 입력하세요");
                textBoxPW.Text = "";
                textBoxPW1.Text = "";
                return;
            }
            num = save_db(id, pass, qw, ans);
            if (num == 1)
            {
                this.Close();
            }
            else
            {
                textBoxID.Text = "";
                textBoxPW.Text = "";
                textBoxPW1.Text = "";
                return;
            }

        }

        private void NewID_Load(object sender, EventArgs e)
        {

        }

        private void textBox2_TextChanged(object sender, EventArgs e)
        {

        }
        private int save_db(string id, string pass, string qw, string ans)
        {
            int check=0;
            
                string connectionString = "provider=Microsoft.JET.OLEDB.4.0;" //연결하는 객체의 공급자명(확장자명)
                                        + "data source = "  //데이터 소스=(경로입력하라는거)
                                        + Application.StartupPath ///상대경로 읽어옴
                                        + @"\diaryplannerdb.mdb";//실제 데이터베이스 파일이름
                string commandString = "Select * from [member]";//member테이블에 있는 모든필드들을 모두 검색해라.
                OleDbDataAdapter DBAdapter ////DataSet을 채우고 데이터 소스를 업데이트하는 데 사용되는 데이터 명령 집합 및 데이터베이스 연결하게 하는 함수
                    = new OleDbDataAdapter(commandString, connectionString);//connectionString이라는 경로와 쿼리명령을 동적할당
                OleDbCommandBuilder myCommandBuilder ///연결된 데이터베이스에서 DataSet의 변경 내용을 조정하는 데 사용되는 단일 테이블 명령을 자동으로 생성합니다
                    = new OleDbCommandBuilder(DBAdapter);
                DataSet DS = new DataSet(); //DS라는 데이터 셋 동적할당
                DBAdapter.Fill(DS, "member"); //DS라는 데이터셋에 새로운 member 테이블에 추가 또는 갱신하겠다고 알림.

                DataTable aTable = DS.Tables["member"];//member테이블을 불러와 aTable을 새로 생성해서 저장
                DataRow newRow = aTable.NewRow();
                for (int i = 0; i < aTable.Rows.Count; i++)
                {
                    if (aTable.Rows[i].ItemArray[0].ToString() == id)
                    {
                        MessageBox.Show("아이디가 중복됩니다");
                        check=1;
                    }
                }
                if (check == 0)
                {
                    newRow["id"] = id;
                    newRow["pass"] = pass;
                    newRow["qw"] = qw;
                    newRow["ans"] = ans;
                    newRow["setting"] = "a";
                    aTable.Rows.Add(newRow);
                    DBAdapter.Update(DS, "member");
                    return 1;
                }
                else
                {
                    return 2;
                }
            }
           
            
        
    }
}
